๐Ÿ”ฅFinal Project Day 2 - flex-grow, flex-shrink

๐Ÿ™์ฐฝ์„ ์ค„์ผ ๋•Œ, ํŠน์ • ์š”์†Œ๋ฅผ ๋‹ค๋ฅธ ์š”์†Œ๋“ค๋ณด๋‹ค ๋ฐฐ๋กœ ์ค„์ด๋Š” flex-shrink

flex-grow, flex-shrink ๋Š” child ์—๊ฒŒ ์ค„ ์ˆ˜ ์žˆ๋Š” property ์ด๋‹ค.

๋ถ€๋ชจ ์š”์†Œ์— flex๋ฅผ ์ฃผ์—ˆ์„ ๋•Œ, (flex-wrap : nowrap ์ธ ์ƒํƒœ) ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ค„์ด๋ฉด ์„ค์ •ํ•œ width ์— ์ƒ๊ด€์—†์ด ์ฐŒ๊ทธ๋Ÿฌ๋“ ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ด ๋•Œ ์–ด๋–ค item ์ด ๋‹ค๋ฅธ item ๋“ค๋ณด๋‹ค ๋” ์ฐŒ๊ทธ๋Ÿฌ์งˆ ์ง€ ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.

๊ทธ๊ฒŒ ๋ฐ”๋กœ flex-shrink ์ด๋ฉฐ ๋””ํดํŠธ ๊ฐ’์€ 1์ด๋‹ค.

์•„๋ž˜ ๊ทธ๋ฆผ์€ ์ผ๋ฐ˜์ ์ธ flex ์†์„ฑ์„ ์ค€ ์ƒํƒœ์˜ ๋ชจ์Šต์ด์ง€๋งŒ,

normal flex

๋‘๋ฒˆ์งธ item ์˜ flex-shrink ๋ฅผ 2๋กœ ๋‘๋ฉด, ์ฒซ๋ฒˆ์งธ์™€ ์„ธ๋ฒˆ์งธ item ์˜ width ๋ณด๋‹ค 2๋ฐฐ๋กœ ๋” ์ค„์–ด๋“ ๋‹ค. ๋งค์šฐ ์œ ์šฉํ•œ property ์ด๋‹ค.

.child:nth-child(2) {
  background: green;
  flex-shrink: 2;
}

flex shrink

๋ฐ•์Šค๋“ค์„ ๋˜‘๊ฐ™์€ ๋น„์œจ๋กœ ์ค„์–ด๋“ค๊ฒŒ ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค! 3 ํ˜น์€ 4 ๋ฅผ ์ ์šฉํ•ด๋ณด์ž.

๐Ÿ™์ฐฝ์„ ํ‚ค์šธ ๋•Œ, ๋น„์–ด์žˆ๋Š” ๊ณต๊ฐ„์„ ๋‹ค ์‚ผ์ผœ์„œ ๋ชธ์ง‘์„ ํ‚ค์šฐ๋Š” flex-grow

flex-grow ๋Š” flex-shrink ์™€ ๊ฐ™์ง€๋งŒ ๋ฐ˜๋Œ€๋กœ ์ž‘์šฉํ•œ๋‹ค.

ํŠน์ • ๋ฐ•์Šค item ์„ ๋‹ค๋ฅธ item ์˜ ๋น„์œจ๋ณด๋‹ค ๋” ํฌ๊ฒŒ!? ์›์ƒํƒœ๋กœ ๋ณต๊ตฌํ•ด ๋†“๊ณ  ์‹œ์ž‘ํ•ด๋ณด์ž.

flex-grow ์˜ default value ๋Š” 0 ์ด๋‹ค. ๊ทธ๋ž˜์„œ 2๋ฒˆ์งธ child ๋ฅผ 1๋กœ ์ค˜๋ณด๋‹ˆ!

.child:nth-child(2) {
  background: green;
  flex-grow: 1;
}

๋‚จ์•„์žˆ๋Š” ๋นˆ ๊ณต๊ฐ„์„ ๋ชจ๋‘ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜, ๋ฐ•์Šค์•„์ดํ…œ 2๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋งŒํผ ์ปค์ง€๊ฒŒ ๋œ๋‹ค.

flex grow 1

์ฆ‰ ์—ฌ๋ถ„์˜ ๊ณต๊ฐ„์ด ์žˆ์œผ๋ฉด flex-grow ๋Š” ๊ทธ ์•ˆ์œผ๋กœ ๋“ค์–ด๊ฐ€์„œ ๋” ํฌ๊ฒŒ ๋งŒ๋“ ๋‹ค. ์ค„์–ด๋“ค๋•Œ๋Š” ๋˜‘๊ฐ™์ด ๋˜์–ด๋ฒ„๋ฆฌ๋ฉด์„œ ๋ง์ด๋‹ค.

(๋ชจ๋ฐ”์ผ ํ™˜๊ฒฝ์—๋Š” ์‚ฌ์ด์ฆˆ๊ฐ€ ์„œ๋กœ ๋˜‘๊ฐ™๊ฒŒ, ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์—์„œ๋Š” ํฌ๊ธฐ๋ฅผ ์ฐจ๋“ฑ์„ ๋‘๊ณ ์ž ํ• ๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ๊ตฟ์ด๊ฒ ๋‹ค!)

์ด๋ฒˆ์—๋Š” flex-grow ๋กœ ๋นˆ ๊ณต๊ฐ„์„ ๋ฐ•์Šค2 ์™€ ๋ฐ•์Šค 3์ด ๋‚˜๋ˆ ์„œ ๊ฐ€์ ธ๊ฐ€๊ฒŒ ํ•ด๋ณด์ž.

.child:nth-child(2) {
  background: green;
  flex-grow: 2;
}

.child:nth-child(3) {
  flex-grow: 1;
}

์ด์ œ ๋‚จ์•„์žˆ๋Š” ๊ณต๊ฐ„์„ 3๋ฒˆ child ๊ฐ€ 1/3 ์„ (flex-grow:1), 2๋ฒˆ child ๊ฐ€ 2/3 ์„ (flex-grow:2) ๊ฐ€์ ธ๊ฐ„๋‹ค.

flex grow 2

๊ฒฐ๋ก  : flex-grow ๋Š” box ์ฃผ๋ณ€์˜ ๊ณต๊ฐ„์„ ๊ฐ€์ง„๋‹ค (๋จน๋Š”๋‹ค)>


Written by@[DotoriMook]
ํ”„๋ก ํŠธ์—”๋“œ ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž ๋„ํ† ๋ฆฌ๋ฌต์˜ ๊ธฐ์ˆ ๊ฐœ๋ฐœ ๋ธ”๋กœ๊ทธ ์ž…๋‹ˆ๋‹ค.

GitHubMediumTwitterFacebook